package com.ruoyi.training.service;

import java.util.List;
import com.ruoyi.training.domain.CertificateTemplate;
import com.ruoyi.training.dto.certificate.CertificateTemplateDto;
import com.ruoyi.training.vo.certificate.CertificateTemplateVo;

/**
 * 证书模板Service接口
 * 
 * @author hcc
 * @date 2025-11-06
 */
public interface ICertificateTemplateService 
{
    /**
     * 查询证书模板
     * 
     * @param certificateTemplateId 证书模板主键
     * @return 证书模板
     */
    public CertificateTemplate selectCertificateTemplateByCertificateTemplateId(String certificateTemplateId);

    /**
     * 查询证书模板列表
     * 
     * @param certificateTemplate 证书模板
     * @return 证书模板集合
     */
    public List<CertificateTemplate> selectCertificateTemplateList(CertificateTemplate certificateTemplate);

    /**
     * 新增证书模板
     * 
     * @param certificateTemplate 证书模板
     * @return 结果
     */
    public int insertCertificateTemplate(CertificateTemplate certificateTemplate);

    /**
     * 修改证书模板
     * 
     * @param certificateTemplate 证书模板
     * @return 结果
     */
    public int updateCertificateTemplate(CertificateTemplate certificateTemplate);

    /**
     * 批量删除证书模板
     * 
     * @param certificateTemplateIds 需要删除的证书模板主键集合
     * @return 结果
     */
    public int deleteCertificateTemplateByCertificateTemplateIds(String[] certificateTemplateIds);

    /**
     * 删除证书模板信息
     * 
     * @param certificateTemplateId 证书模板主键
     * @return 结果
     */
    public int deleteCertificateTemplateByCertificateTemplateId(String certificateTemplateId);

    /**
     * 新增证书模板
     *
     * @param certificateTemplateVo 证书模板
     * @return 结果
     */
    public int addCertificateTemplate(CertificateTemplateVo certificateTemplateVo);

    /**
     * 修改证书模板
     *
     * @param certificateTemplateVo 证书模板
     * @return 结果
     */
    public int editCertificateTemplate(CertificateTemplateVo certificateTemplateVo);

    /**
     * 获取证书模板信息
     *
     * @param certificateTemplateId 模板id
     * @return 模板信息
     */
    public CertificateTemplateDto getCertificateTemplateInfo(String certificateTemplateId);

    /**
     * 复制模板
     *
     * @param certificateTemplateId 模板id
     * @return 结果
     */
    public int copyCertificateTemplate(String certificateTemplateId);
}
